<?php


namespace app\common\utils;

class ArrayToXml
{
	private $version = "1.0";
	private $encoding = "UTF-8";
	private $root = "root";
	private $xml;
	public function __construct()
	{
		$this->xml = new \XmlWriter();
	}
	public function toXml($data, $eIsArray = false)
	{
		if (!$eIsArray) {
			$this->xml->openMemory();
			$this->xml->startDocument($this->version, $this->encoding);
			$this->xml->startElement($this->root);
		}
		foreach ($data as $key => $value) {
			if (is_object($value)) {
				$value = (array) $value;
			}
			if (is_array($value)) {
				$this->xml->startElement($key);
				$this->toXml($value, true);
				$this->xml->endElement();
				continue;
			}
			$this->xml->writeElement($key, $value);
		}
		if (!$eIsArray) {
			$this->xml->endElement();
			return $this->xml->outputMemory(true);
		}
	}
}